// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.ast.SQLObjectImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../SQLObjectImpl.h"
#include "SQLAlterTableItem.h"

class SQLAlterTableAddPartition : virtual public SQLObjectImpl ,virtual public SQLAlterTableItem
{
public:
  BOOL_ptr ifNotExists;
  SQLObject_list_ptr partitions;
  SQLExpr_ptr partitionCount;
  SQLExpr_ptr location; // hive

  SQLAlterTableAddPartition();
  SHAREDOBJECT(SQLAlterTableAddPartition);
  SQLObject_list_ptr getPartitions();

  void addPartition(SQLObject_ptr x);

  BOOL_ptr isIfNotExists();

  void setIfNotExists(BOOL_ptr ifNotExists);

  SQLExpr_ptr getPartitionCount();

  void setPartitionCount(SQLExpr_ptr x);

  SQLExpr_ptr getLocation();

  void setLocation(SQLExpr_ptr x);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);
};
